home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / PInterfaces / StandardFile.p < prev    next >
Text File  |  1996-05-01  |  9KB  |  293 lines

  1. {
  2.      File:        StandardFile.p
  3.  
  4.      Contains:    Standard File package Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT StandardFile;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __STANDARDFILE__}
  28. {$SETC __STANDARDFILE__ := 1}
  29.  
  30. {$I+}
  31. {$SETC StandardFileIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __DIALOGS__}
  38. {$I Dialogs.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __FILES__}
  41. {$I Files.p}
  42. {$ENDC}
  43.  
  44. {$PUSH}
  45. {$ALIGN MAC68K}
  46. {$LibExport+}
  47.  
  48. {$IFC FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE }
  49. {  The interfaces for other managers depend on these structs. }
  50.  
  51. TYPE
  52.     SFReplyPtr = ^SFReply;
  53.     SFReply = RECORD
  54.         good:                    BOOLEAN;
  55.         copy:                    BOOLEAN;
  56.         fType:                    OSType;
  57.         vRefNum:                INTEGER;
  58.         version:                INTEGER;
  59.         fName:                    Str63;
  60.     END;
  61.  
  62.     StandardFileReplyPtr = ^StandardFileReply;
  63.     StandardFileReply = RECORD
  64.         sfGood:                    BOOLEAN;
  65.         sfReplacing:            BOOLEAN;
  66.         sfType:                    OSType;
  67.         sfFile:                    FSSpec;
  68.         sfScript:                ScriptCode;
  69.         sfFlags:                INTEGER;
  70.         sfIsFolder:                BOOLEAN;
  71.         sfIsVolume:                BOOLEAN;
  72.         sfReserved1:            LONGINT;
  73.         sfReserved2:            INTEGER;
  74.     END;
  75.  
  76. {$ENDC}
  77. {$IFC FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED }
  78. {
  79.  * Note to developers targeting for system versions later than System 7.x.
  80.  *
  81.  * After System 7.x, the routines in this file will become obsolete!
  82.  *
  83.  * For software targeted to later system versions, do not include this file.
  84.  * Instead, include Navigation and use its routines.  StandardFile routines will
  85.  * be implemented only for backward compatibility with System 7.x software.
  86.  *
  87. }
  88.  
  89. CONST
  90.                                                                 {  resource IDs and item offsets of pre-7.0 dialogs  }
  91.     putDlgID                    = -3999;
  92.     putSave                        = 1;
  93.     putCancel                    = 2;
  94.     putEject                    = 5;
  95.     putDrive                    = 6;
  96.     putName                        = 7;
  97.     getDlgID                    = -4000;
  98.     getOpen                        = 1;
  99.     getCancel                    = 3;
  100.     getEject                    = 5;
  101.     getDrive                    = 6;
  102.     getNmList                    = 7;
  103.     getScroll                    = 8;                            {  resource IDs and item offsets of 7.0 dialogs  }
  104.     sfPutDialogID                = -6043;
  105.     sfGetDialogID                = -6042;
  106.     sfItemOpenButton            = 1;
  107.     sfItemCancelButton            = 2;
  108.     sfItemBalloonHelp            = 3;
  109.     sfItemVolumeUser            = 4;
  110.     sfItemEjectButton            = 5;
  111.  
  112.     sfItemDesktopButton            = 6;
  113.     sfItemFileListUser            = 7;
  114.     sfItemPopUpMenuUser            = 8;
  115.     sfItemDividerLinePict        = 9;
  116.     sfItemFileNameTextEdit        = 10;
  117.     sfItemPromptStaticText        = 11;
  118.     sfItemNewFolderUser            = 12;                            {  pseudo-item hits for use in DlgHook  }
  119.     sfHookFirstCall                = -1;
  120.     sfHookCharOffset            = $1000;
  121.     sfHookNullEvent                = 100;
  122.     sfHookRebuildList            = 101;
  123.     sfHookFolderPopUp            = 102;
  124.     sfHookOpenFolder            = 103;                            {  the following are only in system 7.0+  }
  125.     sfHookOpenAlias                = 104;
  126.     sfHookGoToDesktop            = 105;
  127.     sfHookGoToAliasTarget        = 106;
  128.     sfHookGoToParent            = 107;
  129.     sfHookGoToNextDrive            = 108;
  130.     sfHookGoToPrevDrive            = 109;
  131.     sfHookChangeSelection        = 110;
  132.  
  133.     sfHookSetActiveOffset        = 200;
  134.     sfHookLastCall                = -2;
  135.  
  136. {
  137.  the refcon field of the dialog record during a
  138.  modalfilter or dialoghook contains one of the following 
  139. }
  140.     sfMainDialogRefCon            = 'stdf';
  141.     sfNewFolderDialogRefCon        = 'nfdr';
  142.     sfReplaceDialogRefCon        = 'rplc';
  143.     sfStatWarnDialogRefCon        = 'stat';
  144.     sfLockWarnDialogRefCon        = 'lock';
  145.     sfErrorDialogRefCon            = 'err ';
  146.  
  147. {  for CustomXXXFile, ActivationOrderListPtr parameter is a pointer to an array of item numbers  }
  148.  
  149. TYPE
  150.     ActivationOrderListPtr                = ^INTEGER;
  151.     DlgHookProcPtr = ProcPtr;  { FUNCTION DlgHook(item: INTEGER; theDialog: DialogPtr): INTEGER; }
  152.  
  153.     FileFilterProcPtr = ProcPtr;  { FUNCTION FileFilter(pb: CInfoPBPtr): BOOLEAN; }
  154.  
  155. {  the following also include an extra parameter of "your data pointer"  }
  156.     DlgHookYDProcPtr = ProcPtr;  { FUNCTION DlgHookYD(item: INTEGER; theDialog: DialogPtr; yourDataPtr: UNIV Ptr): INTEGER; }
  157.  
  158.     ModalFilterYDProcPtr = ProcPtr;  { FUNCTION ModalFilterYD(theDialog: DialogPtr; VAR theEvent: EventRecord; VAR itemHit: INTEGER; yourDataPtr: UNIV Ptr): BOOLEAN; }
  159.  
  160.     FileFilterYDProcPtr = ProcPtr;  { FUNCTION FileFilterYD(pb: CInfoPBPtr; yourDataPtr: UNIV Ptr): BOOLEAN; }
  161.  
  162.     ActivateYDProcPtr = ProcPtr;  { PROCEDURE ActivateYD(theDialog: DialogPtr; itemNo: INTEGER; activating: BOOLEAN; yourDataPtr: UNIV Ptr); }
  163.  
  164.     DlgHookUPP = UniversalProcPtr;
  165.     FileFilterUPP = UniversalProcPtr;
  166.     DlgHookYDUPP = UniversalProcPtr;
  167.     ModalFilterYDUPP = UniversalProcPtr;
  168.     FileFilterYDUPP = UniversalProcPtr;
  169.     ActivateYDUPP = UniversalProcPtr;
  170.  
  171. CONST
  172.     uppDlgHookProcInfo = $000003A0;
  173.     uppFileFilterProcInfo = $000000D0;
  174.     uppDlgHookYDProcInfo = $00000FA0;
  175.     uppModalFilterYDProcInfo = $00003FD0;
  176.     uppFileFilterYDProcInfo = $000003D0;
  177.     uppActivateYDProcInfo = $000036C0;
  178.  
  179. FUNCTION NewDlgHookProc(userRoutine: DlgHookProcPtr): DlgHookUPP;
  180.     {$IFC NOT GENERATINGCFM }
  181.     INLINE $2E9F;
  182.     {$ENDC}
  183.  
  184. FUNCTION NewFileFilterProc(userRoutine: FileFilterProcPtr): FileFilterUPP;
  185.     {$IFC NOT GENERATINGCFM }
  186.     INLINE $2E9F;
  187.     {$ENDC}
  188.  
  189. FUNCTION NewDlgHookYDProc(userRoutine: DlgHookYDProcPtr): DlgHookYDUPP;
  190.     {$IFC NOT GENERATINGCFM }
  191.     INLINE $2E9F;
  192.     {$ENDC}
  193.  
  194. FUNCTION NewModalFilterYDProc(userRoutine: ModalFilterYDProcPtr): ModalFilterYDUPP;
  195.     {$IFC NOT GENERATINGCFM }
  196.     INLINE $2E9F;
  197.     {$ENDC}
  198.  
  199. FUNCTION NewFileFilterYDProc(userRoutine: FileFilterYDProcPtr): FileFilterYDUPP;
  200.     {$IFC NOT GENERATINGCFM }
  201.     INLINE $2E9F;
  202.     {$ENDC}
  203.  
  204. FUNCTION NewActivateYDProc(userRoutine: ActivateYDProcPtr): ActivateYDUPP;
  205.     {$IFC NOT GENERATINGCFM }
  206.     INLINE $2E9F;
  207.     {$ENDC}
  208.  
  209. FUNCTION CallDlgHookProc(item: INTEGER; theDialog: DialogPtr; userRoutine: DlgHookUPP): INTEGER;
  210.     {$IFC NOT GENERATINGCFM}
  211.     INLINE $205F, $4E90;
  212.     {$ENDC}
  213.  
  214. FUNCTION CallFileFilterProc(pb: CInfoPBPtr; userRoutine: FileFilterUPP): BOOLEAN;
  215.     {$IFC NOT GENERATINGCFM}
  216.     INLINE $205F, $4E90;
  217.     {$ENDC}
  218.  
  219. FUNCTION CallDlgHookYDProc(item: INTEGER; theDialog: DialogPtr; yourDataPtr: UNIV Ptr; userRoutine: DlgHookYDUPP): INTEGER;
  220.     {$IFC NOT GENERATINGCFM}
  221.     INLINE $205F, $4E90;
  222.     {$ENDC}
  223.  
  224. FUNCTION CallModalFilterYDProc(theDialog: DialogPtr; VAR theEvent: EventRecord; VAR itemHit: INTEGER; yourDataPtr: UNIV Ptr; userRoutine: ModalFilterYDUPP): BOOLEAN;
  225.     {$IFC NOT GENERATINGCFM}
  226.     INLINE $205F, $4E90;
  227.     {$ENDC}
  228.  
  229. FUNCTION CallFileFilterYDProc(pb: CInfoPBPtr; yourDataPtr: UNIV Ptr; userRoutine: FileFilterYDUPP): BOOLEAN;
  230.     {$IFC NOT GENERATINGCFM}
  231.     INLINE $205F, $4E90;
  232.     {$ENDC}
  233.  
  234. PROCEDURE CallActivateYDProc(theDialog: DialogPtr; itemNo: INTEGER; activating: BOOLEAN; yourDataPtr: UNIV Ptr; userRoutine: ActivateYDUPP);
  235.     {$IFC NOT GENERATINGCFM}
  236.     INLINE $205F, $4E90;
  237.     {$ENDC}
  238.  
  239. TYPE
  240.     SFTypeList                            = ARRAY [0..3] OF OSType;
  241. {
  242.     The GetFile "typeList" parameter type has changed from "SFTypeList" to "ConstSFTypeListPtr".
  243.     For C, this will add "const" and make it an in-only parameter.
  244.     For Pascal, this will require client code to use the @ operator, but make it easier to specify long lists.
  245.  
  246.     ConstSFTypeListPtr is a pointer to an array of OSTypes.
  247. }
  248.     ConstSFTypeListPtr                    = ^OSType;
  249. PROCEDURE SFPutFile(where: Point; prompt: Str255; origName: Str255; dlgHook: DlgHookUPP; VAR reply: SFReply);
  250.     {$IFC NOT GENERATINGCFM}
  251.     INLINE $3F3C, $0001, $A9EA;
  252.     {$ENDC}
  253. PROCEDURE SFGetFile(where: Point; prompt: Str255; fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; dlgHook: DlgHookUPP; VAR reply: SFReply);
  254.     {$IFC NOT GENERATINGCFM}
  255.     INLINE $3F3C, $0002, $A9EA;
  256.     {$ENDC}
  257. PROCEDURE SFPPutFile(where: Point; prompt: Str255; origName: Str255; dlgHook: DlgHookUPP; VAR reply: SFReply; dlgID: INTEGER; filterProc: ModalFilterUPP);
  258.     {$IFC NOT GENERATINGCFM}
  259.     INLINE $3F3C, $0003, $A9EA;
  260.     {$ENDC}
  261. PROCEDURE SFPGetFile(where: Point; prompt: Str255; fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; dlgHook: DlgHookUPP; VAR reply: SFReply; dlgID: INTEGER; filterProc: ModalFilterUPP);
  262.     {$IFC NOT GENERATINGCFM}
  263.     INLINE $3F3C, $0004, $A9EA;
  264.     {$ENDC}
  265. PROCEDURE StandardPutFile(prompt: Str255; defaultName: Str255; VAR reply: StandardFileReply);
  266.     {$IFC NOT GENERATINGCFM}
  267.     INLINE $3F3C, $0005, $A9EA;
  268.     {$ENDC}
  269. PROCEDURE StandardGetFile(fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; VAR reply: StandardFileReply);
  270.     {$IFC NOT GENERATINGCFM}
  271.     INLINE $3F3C, $0006, $A9EA;
  272.     {$ENDC}
  273. PROCEDURE CustomPutFile(prompt: Str255; defaultName: Str255; VAR reply: StandardFileReply; dlgID: INTEGER; where: Point; dlgHook: DlgHookYDUPP; filterProc: ModalFilterYDUPP; activeList: ActivationOrderListPtr; activate: ActivateYDUPP; yourDataPtr: UNIV Ptr);
  274.     {$IFC NOT GENERATINGCFM}
  275.     INLINE $3F3C, $0007, $A9EA;
  276.     {$ENDC}
  277. PROCEDURE CustomGetFile(fileFilter: FileFilterYDUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; VAR reply: StandardFileReply; dlgID: INTEGER; where: Point; dlgHook: DlgHookYDUPP; filterProc: ModalFilterYDUPP; activeList: ActivationOrderListPtr; activate: ActivateYDUPP; yourDataPtr: UNIV Ptr);
  278.     {$IFC NOT GENERATINGCFM}
  279.     INLINE $3F3C, $0008, $A9EA;
  280.     {$ENDC}
  281. FUNCTION StandardOpenDialog(VAR reply: StandardFileReply): OSErr;
  282. {$ENDC}
  283. {$ALIGN RESET}
  284. {$POP}
  285.  
  286. {$SETC UsingIncludes := StandardFileIncludes}
  287.  
  288. {$ENDC} {__STANDARDFILE__}
  289.  
  290. {$IFC NOT UsingIncludes}
  291.  END.
  292. {$ENDC}
  293.